home *** CD-ROM | disk | FTP | other *** search
- package com.ibm.xml.xpointer;
-
- import com.ibm.xml.parser.TXElement;
- import java.io.Serializable;
- import java.util.Enumeration;
- import java.util.Vector;
- import org.w3c.dom.Attr;
- import org.w3c.dom.CDATASection;
- import org.w3c.dom.Comment;
- import org.w3c.dom.Element;
- import org.w3c.dom.Node;
- import org.w3c.dom.ProcessingInstruction;
- import org.w3c.dom.Text;
-
- public class RelTerm implements OtherTerm, Serializable {
- static final long serialVersionUID = -742339128434233398L;
- int keywordType;
- boolean isAll;
- int instance;
- int nodeType;
- String elementName;
- Vector attributes;
-
- public RelTerm(int var1, boolean var2, int var3, int var4, String var5, Vector var6) {
- this.keywordType = -1;
- this.isAll = false;
- this.instance = -1;
- this.nodeType = -1;
- this.keywordType = var1;
- this.isAll = var2;
- this.instance = var3;
- this.nodeType = var4;
- this.elementName = var5;
- this.attributes = var6;
- }
-
- public RelTerm(int var1, int var2, int var3) {
- this(var1, false, var2, var3, (String)null, new Vector());
- }
-
- public RelTerm(int var1, boolean var2, int var3) {
- this(var1, true, -1, var3, (String)null, new Vector());
- }
-
- public RelTerm(int var1, int var2, String var3) {
- this(var1, false, var2, 1, var3, new Vector());
- }
-
- public RelTerm(int var1, String var2) {
- this(var1, true, -1, 1, var2, new Vector());
- }
-
- public RelTerm(int var1, int var2) {
- this(var1, false, var2, -1, (String)null, new Vector());
- }
-
- public RelTerm(int var1) {
- this(var1, true, -1, -1, (String)null, new Vector());
- }
-
- public int getType() {
- return this.keywordType;
- }
-
- public void setType(int var1) {
- this.keywordType = var1;
- }
-
- public String getTypeName() {
- return this.keywordType == -1 ? null : XPointer.literals[this.keywordType];
- }
-
- public boolean isAll() {
- return this.isAll;
- }
-
- public int getInstance() {
- return this.instance;
- }
-
- public int getNodeType() {
- return this.nodeType;
- }
-
- public String getElementName() {
- return this.elementName;
- }
-
- public Vector getAttributesVector() {
- return this.attributes;
- }
-
- public String toString() {
- StringBuffer var1 = new StringBuffer(48);
- if (this.keywordType != -1) {
- var1.append(XPointer.literals[this.keywordType]);
- }
-
- var1.append("(");
- if (this.isAll) {
- var1.append("all");
- } else {
- var1.append(this.instance);
- }
-
- if (this.nodeType != 0) {
- var1.append(",");
- var1.append(this.nodeType == 1 ? this.elementName : XPointer.nodetypes[this.nodeType]);
- Enumeration var2 = this.attributes.elements();
-
- while(var2.hasMoreElements()) {
- var1.append(var2.nextElement().toString());
- }
- }
-
- var1.append(")");
- return var1.toString();
- }
-
- public boolean match(Node var1) {
- boolean var2 = false;
- switch (this.nodeType) {
- case 0:
- case 2:
- var2 = var1 instanceof Element;
- break;
- case 1:
- if (var1 instanceof Element) {
- var2 = ((Element)var1).getTagName().equals(this.elementName);
- }
- break;
- case 3:
- var2 = var1 instanceof ProcessingInstruction;
- break;
- case 4:
- var2 = var1 instanceof Comment;
- break;
- case 5:
- var2 = var1 instanceof Text;
- break;
- case 6:
- var2 = var1 instanceof CDATASection;
- break;
- case 7:
- var2 = true;
- }
-
- if (!var2) {
- return var2;
- } else if (this.attributes.size() == 0) {
- return true;
- } else if (!(var1 instanceof Element)) {
- return false;
- } else {
- Element var3 = (Element)var1;
- Enumeration var4 = this.attributes.elements();
-
- while(var4.hasMoreElements()) {
- RelTermAttribute var5 = (RelTermAttribute)var4.nextElement();
- String var6 = var5.getName();
- if (var6.equals("*")) {
- Enumeration var10 = ((TXElement)var3).attributeElements();
- switch (var5.getValueType()) {
- case 0:
- if (var10.hasMoreElements()) {
- return false;
- }
- break;
- case 1:
- if (!var10.hasMoreElements()) {
- return false;
- }
- break;
- case 2:
- var2 = false;
-
- while(var10.hasMoreElements()) {
- if (((Attr)var10.nextElement()).getValue().equalsIgnoreCase(var5.getValue())) {
- var2 = true;
- break;
- }
- }
-
- if (!var2) {
- return false;
- }
- break;
- case 3:
- var2 = false;
-
- while(var10.hasMoreElements()) {
- if (((Attr)var10.nextElement()).getValue().equals(var5.getValue())) {
- var2 = true;
- break;
- }
- }
-
- if (!var2) {
- return false;
- }
- }
- } else {
- Enumeration var7 = ((TXElement)var3).attributeElements();
- Attr var8 = null;
-
- while(var7.hasMoreElements()) {
- Attr var9 = (Attr)var7.nextElement();
- if (var9.getName().equals(var6)) {
- var8 = var9;
- break;
- }
- }
-
- switch (var5.getValueType()) {
- case 0:
- var2 = var8 == null;
- break;
- case 1:
- var2 = var8 != null;
- break;
- case 2:
- var2 = var8 != null && var8.getValue().equalsIgnoreCase(var5.getValue());
- break;
- case 3:
- var2 = var8 != null && var8.getValue().equals(var5.getValue());
- }
-
- if (!var2) {
- return false;
- }
- }
- }
-
- return var2;
- }
- }
- }
-